It is known for attackers to launch attacks against software applications. Such attacks can have very wide reaching and damaging consequences (in terms of financial loss, reputation loss, time loss, data loss and data leakage). Software and system developers are in a permanent struggle with the attackers, whereby the developers try to develop measures to thwart attacks that attackers might launch, and with the attackers trying to develop new attacks that overcome or bypass the measures taken by the developers.